#ifndef MINIBANK_CUSTOMER_HH
#define MINIBANK_CUSTOMER_HH

#include <string>
#include <vector>
#include "AccountUtils.hh"

namespace minibank {

class Customer {
    private:
    std::string name_;
    BankAccount savings_;
    BankAccount checking_;
    // std::vector<Transaction> transactions_; // reserved

public:
    // Constructors and Rule of Three
    Customer(const std::string& name, const BankAccount& savings, const BankAccount& checking);
    Customer(const Customer& other);
    Customer& operator=(const Customer& other);
    ~Customer();

    // Getters
    std::string getName() const;
    BankAccount& getSavingsAccount();  // Non-const reference
    BankAccount& getCheckingAccount();
    const BankAccount& getSavingsAccount() const;
    const BankAccount& getCheckingAccount() const;

};

} // namespace minibank

#endif // MINIBANK_CUSTOMER_HH